#ifndef LOGINPAGE_H
#define LOGINPAGE_H

#include <QWidget>
#include <QLineEdit>
#include <QPushButton>

namespace Ui {
class LoginPage;
}

/**
 * @brief 登录页面类，处理用户登录功能
 */
class LoginPage : public QWidget
{
    Q_OBJECT

public:
    /**
     * @brief 构造函数，初始化登录页面
     * @param parent 父窗口指针
     */
    explicit LoginPage(QWidget *parent = nullptr);

    /**
     * @brief 析构函数，释放资源
     */
    ~LoginPage();

signals:
    /**
     * @brief 登录成功信号，携带用户ID和用户名
     * @param userId 用户ID
     * @param username 用户名
     */
    void loginSuccess(const QString &userId, const QString &username);

    /**
     * @brief 跳转注册页面信号
     */
    void toRegisterPage();

private slots:
    /**
     * @brief 登录按钮点击事件处理
     */
    void onLoginClicked();

    /**
     * @brief 注册按钮点击事件处理
     */
    void onRegisterClicked();

private:
    Ui::LoginPage *ui;               ///< UI对象指针
    QLineEdit *m_usernameEdit;       ///< 用户名输入框
    QLineEdit *m_passwordEdit;       ///< 密码输入框
    QPushButton *m_loginBtn;         ///< 登录按钮
    QPushButton *m_registerBtn;      ///< 注册按钮

    /**
     * @brief 初始化UI组件
     */
    void initUI();

    /**
     * @brief 验证登录输入
     * @return 验证通过返回true，否则返回false
     */
    bool validateInput();
};

#endif // LOGINPAGE_H
